--[[
描述 ： 列表item 选择控件
作者 ： fudazhi
时间 ： 14/04/11
注：不作为单独的控件 是UIPopSelectBox的工具类
]]
UIPopSelItems = Class(MLView,'UIPopSelItems');
--常规
--1、字体
UIPopSelItems.fontHeight       = nil;    -- 字体高度
UIPopSelItems.fontColor        = nil;      -- 字体背景颜色
UIPopSelItems.fontFocusColor     = nil;      -- 字体聚集颜色
--2、背景颜色
UIPopSelItems.bgColor        = nil;      -- 背景颜色
UIPopSelItems.focusColor       = nil;      -- 聚集颜色
UIPopSelItems.lineColor      = nil;    -- 底线颜色
--3、背景图片
UIPopSelItems.bgImage          = nil;      -- 背景图片
UIPopSelItems.focusImage       = nil;      -- 聚集图片

--checkBox
--1、背景颜色
UIPopSelItems.checkbgColor     = nil;      -- 背景颜色
UIPopSelItems.checkfocusColor      = nil;      -- 聚集颜色
--2、背景图片
UIPopSelItems.checkbgImage       = nil;      -- 背景图片
UIPopSelItems.checkfocusImage      = nil;      -- 聚集图片

--规格设置
UIPopSelItems.text         = nil;    --文字
UIPopSelItems.mTextSpace       = nil;    --距左边距
UIPopSelItems.mIsMultiple      = nil;    --是否多选
UIPopSelItems.mIsClick       = nil;    --是否选中

--Item事件
UIPopSelItems.LOSE_FOCUS_INTERVAL  =  AW(15);  -- 失去焦点间隔 闸值
UIPopSelItems.mIsFocus       =  nil;     -- 是否聚焦
UIPopSelItems.mDownX           =  nil;     -- 触摸屏x坐标
UIPopSelItems.mDownY         =  nil;     -- 触摸屏Y坐标
UIPopSelItems.isSel          = nil; --是否是选中项

--[[
功能   ： new UIPopSelItems 控件
参数   ： width        --  宽度
height       --  高度
返回   ： UIPopSelItems 实例
]]
function UIPopSelItems:init (text, width, height,vc,id)
  self:initView(width, height, vc,id);
  self.text = text;
  self.isSel  = false;
  
  -- -- --1、字体
  -- self.fontHeight = fontHeight;
  -- self.fontColor = fontColor;
  -- self.fontFocusColor = fontFocusColor;
  -- --2、背景颜色
--   self.bgColor = bgColor;
--   self.focusColor = focusColor;
  -- self.lineColor = lineColor;
  -- --3、背景图片
  -- self.bgImage = bgImage;
  -- self.focusImage = focusImage;
  -- --checkBox
  -- --1、背景颜色
  -- self.checkbgColor = checkbgColor;
  -- self.checkfocusColor = checkfocusColor;
  -- --2、背景图片
  -- self.checkbgImage = checkbgImage;
  -- self.checkfocusImage = checkfocusImage;

  self.onPoint = function ( evt, x, y )
    -- body
    --print('UIButton:onPoint', evt, x, y);
    local interval =  self.LOSE_FOCUS_INTERVAL;
    if evt == MLView.PointDown then
--      print('eeeeeeeeee= MLView.PointDown')
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus= true;
    elseif evt == MLView.PointUp then
--      print('eeeeeeeeee= MLView.PointUp')
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    elseif evt == MLView.PointMove then
--      print('eeeeeeeeee= MLView.PointMove')
--     if math.abs(x-self.mDownX) > interval or math.abs(y-self.mDownY) > interval then
      self.mIsFocus = false;
--     end
    elseif evt == MLView.PointCANCEL then
--      print('eeeeeeeeee= MLView.PointCANCEL')
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    end

    self:show();
    return 1;  -- 事件不拦截
  end

  return self;
end



--[[
功能   ： 画控件
参数   ： 无
返回   ： 无
]]
function UIPopSelItems:show()
  local g = self:getGraphic();
  g:clear();
  local w, h = self:getWH();
  local x , y =self.mTextSpace, 0;

  local color, image = self.bgColor, self.bgImage;
  if self.mIsFocus then
    color = self.focusColor;
    image = self.focusImage;
  end

--  if self.isSel == true  then
--    color = 0xeeeeee;
--    image = self.focusImage;
--  end
  if image then
    --print('---draw image');
    g:drawImage(image, 0, 0, w, h);
  else
    --print('----draw color');
    g:fillRect(0, 0, w, h, color, 0);
    g:drawLine(0, h-1, w, h-1, self.lineColor, 1);
  end

  self.mIsClick = self.mIsClick or false;
  local checkcolor, checkimage = self.checkbgColor, self.checkbgImage;
  if self.mIsClick then
    checkcolor = self.checkfocusColor;
    checkimage = self.checkfocusImage;
  end
 
  if self.text then
    y = (h-self.fontHeight)/2;
    if self.mIsMultiple then
      local lines = UIUtils.calcTextLine(self.text, w-x-AW(50), 1, self.fontHeight, self.fs);
      g:drawString(lines[1], x, y, self.fontColor, self.fontHeight, self.fs);
      --Img
      if checkimage then
        g:drawImage(checkimage, w-AW(50), AH(10), AW(30), AW(30));
      else
        g:fillRect(w-AW(50), AH(10), AW(30), AW(30), checkcolor, 0);
      end
    else
      local lines = UIUtils.calcTextLine(self.text, w-x, 1, self.fontHeight, self.fs);
      g:drawString(lines[1], x , y, self.fontColor, self.fontHeight, self.fs);
    end
  end

  self.onClick= function (  )
    -- body
    if self.mIsClick == false then
      self.mIsClick = true;
    elseif self.mIsClick == true then
      self.mIsClick = false;
    end

    self:show();
    if self.onClickEvent then
      self.onClickEvent(self.isClick);
    end
  end
end



--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UIPopSelItems:update()
  self:draw();
end